﻿#pragma once
#include"const.h"
#include<memory>
/*(1) io_context
•	boost::asio::io_context 是所有 I/O 操作的核心，管理异步操作的执行。
(2) tcp::socket
•	boost::asio::ip::tcp::socket 是一个具体的套接字类，用于 TCP 通信。
(3) acceptor
•	boost::asio::ip::tcp::acceptor 用于监听和接受新的连接。
(4) 异步操作
•	使用 async_accept()、async_read() 和 async_write() 等函数实现异步通信。
boost::asio::io_context ioc;
boost::asio::ip::tcp::acceptor acceptor(ioc, tcp::endpoint(tcp::v4(), 8080));
boost::asio::ip::tcp::socket socket(ioc);

acceptor.async_accept(socket, [](boost::system::error_code ec) {
	if (!ec) {
		std::cout << "Connection accepted!" << std::endl;
	}
});
ioc.run();*/

class CServer :public std::enable_shared_from_this<CServer>//安全地管理异步回调中的对象生命周期,生成一个 shared_ptr 来延长对象的生命周期，确保回调执行时对象依然存在。
{
public:
	CServer(boost::asio::io_context& ioc, unsigned short& port);
	void Start();//启动服务器
private:
	tcp::acceptor _acceptor;//接受器
	net::io_context& _ioc;//io上下文
	//tcp::socket _socket;//套接字

};

